home *** CD-ROM | disk | FTP | other *** search
-
-
-
- IIIINNNNEEEETTTT((((3333NNNN)))) IIIINNNNEEEETTTT((((3333NNNN))))
-
-
-
- NNNNAAAAMMMMEEEE
- inet_aton, inet_addr, inet_network, inet_isaddr, inet_ntoa, inet_ntop,
- inet_pton, inet_makeaddr, inet_lnaof, inet_netof - Internet address
- manipulation routines
-
- SSSSYYYYNNNNOOOOPPPPSSSSIIIISSSS
- ####iiiinnnncccclllluuuuddddeeee <<<<ssssyyyyssss////ttttyyyyppppeeeessss....hhhh>>>>
- ####iiiinnnncccclllluuuuddddeeee <<<<ssssyyyyssss////ssssoooocccckkkkeeeetttt....hhhh>>>>
- ####iiiinnnncccclllluuuuddddeeee <<<<nnnneeeettttiiiinnnneeeetttt////iiiinnnn....hhhh>>>>
- ####iiiinnnncccclllluuuuddddeeee <<<<aaaarrrrppppaaaa////iiiinnnneeeetttt....hhhh>>>>
-
- iiiinnnntttt iiiinnnneeeetttt____aaaattttoooonnnn((((ccccoooonnnnsssstttt cccchhhhaaaarrrr ****ccccpppp,,,, ssssttttrrrruuuucccctttt iiiinnnn____aaaaddddddddrrrr ****ppppiiiinnnn))));;;;
-
- uuuunnnnssssiiiiggggnnnneeeedddd lllloooonnnngggg iiiinnnneeeetttt____aaaaddddddddrrrr((((ccccoooonnnnsssstttt cccchhhhaaaarrrr ****ccccpppp))));;;;
-
- uuuunnnnssssiiiiggggnnnneeeedddd lllloooonnnngggg iiiinnnneeeetttt____nnnneeeettttwwwwoooorrrrkkkk((((ccccoooonnnnsssstttt cccchhhhaaaarrrr ****ccccpppp))));;;;
-
- iiiinnnntttt iiiinnnneeeetttt____iiiissssaaaaddddddddrrrr((((ccccoooonnnnsssstttt cccchhhhaaaarrrr ****ccccpppp,,,, uuuuiiiinnnntttt33332222____tttt ****aaaaddddddddrrrr))));;;;
-
- cccchhhhaaaarrrr ****iiiinnnneeeetttt____nnnnttttooooaaaa((((ssssttttrrrruuuucccctttt iiiinnnn____aaaaddddddddrrrr iiiinnnn))));;;;
-
- ccccoooonnnnsssstttt cccchhhhaaaarrrr ****iiiinnnneeeetttt____nnnnttttoooopppp((((iiiinnnntttt aaaaffff,,,, ccccoooonnnnsssstttt vvvvooooiiiidddd ****ssssrrrrcccc,,,, cccchhhhaaaarrrr ****ddddsssstttt,,,, ssssoooocccckkkklllleeeennnn____tttt ssssiiiizzzzeeee))));;;;
-
- iiiinnnntttt iiiinnnneeeetttt____ppppttttoooonnnn((((iiiinnnntttt aaaaffff,,,, ccccoooonnnnsssstttt cccchhhhaaaarrrr ****ssssrrrrcccc,,,, vvvvooooiiiidddd ****ddddsssstttt))));;;;
-
- ssssttttrrrruuuucccctttt iiiinnnn____aaaaddddddddrrrr iiiinnnneeeetttt____mmmmaaaakkkkeeeeaaaaddddddddrrrr((((iiiinnnntttt nnnneeeetttt,,,, iiiinnnntttt llllnnnnaaaa))));;;;
-
- uuuunnnnssssiiiiggggnnnneeeedddd lllloooonnnngggg iiiinnnneeeetttt____llllnnnnaaaaooooffff((((ssssttttrrrruuuucccctttt iiiinnnn____aaaaddddddddrrrr iiiinnnn))));;;;
-
- uuuunnnnssssiiiiggggnnnneeeedddd lllloooonnnngggg iiiinnnneeeetttt____nnnneeeettttooooffff((((ssssttttrrrruuuucccctttt iiiinnnn____aaaaddddddddrrrr iiiinnnn))));;;;
-
- DDDDEEEESSSSCCCCRRRRIIIIPPPPTTTTIIIIOOOONNNN
- The routines _i_n_e_t__a_t_o_n, _i_n_e_t__a_d_d_r and _i_n_e_t__n_e_t_w_o_r_k interpret character
- strings representing numbers expressed in the Internet standard "." (dot)
- notation.
-
- The _i_n_e_t__p_t_o_n function converts a presentation format address (that is,
- printable form as held in a character string) to network format (usually
- a _s_t_r_u_c_t _i_n__a_d_d_r or some other internal binary representation, in network
- byte order). The function returns 1 if the address is valid or 0 if it
- could not be parsed for the given address family. If the _a_f argument is
- unknown, then -1 is returned with eeeerrrrrrrrnnnnoooo set to EAFNOSUPPORT. This
- function is presently valid for AF_INET and AF_INET6. The following
- discussion under INTERNET ADDRESSES is not valid for the function
- iiiinnnneeeetttt____ppppttttoooonnnn , because if its _a_f argument is AF_INET then the _s_r_c string can
- be only in the standard IPv4 dotted decimal form:
-
- ddd.ddd.ddd.ddd
-
-
-
-
-
-
-
- PPPPaaaaggggeeee 1111
-
-
-
-
-
-
- IIIINNNNEEEETTTT((((3333NNNN)))) IIIINNNNEEEETTTT((((3333NNNN))))
-
-
-
- where 'ddd' is a one to three digit decimal number between 0 and 255 (see
- the inet_addr() definition). The iiiinnnneeeetttt____ppppttttoooonnnn () function does not accept
- other formats (such as the octal numbers, hexadecimal numbers, and fewer
- than four numbers that iiiinnnneeeetttt____aaaattttoooonnnn () or iiiinnnneeeetttt____aaaaddddddddrrrr () accepts). This is a
- narrower input set than that accepted by iiiinnnneeeetttt____aaaattttoooonnnn....
-
- If the af argument of iiiinnnneeeetttt____ppppttttoooonnnn () is AF_INET6, the _s_r_c string must be in
- one of the following standard IPv6 text forms:
-
- 1. The preferred form is x:x:x:x:x:x:x:x, where the 'x's are the
- hexadecimal values of the eight 16-bit pieces of the address.
- Leading zeros in individual fields can be omitted, but there must be
- at least one numeral in every field.
-
- 2. A string of contiguous zero fields in the preferred form can be
- shown as "::". The "::" can only appear once in an address.
- Unspecified addresses (0:0:0:0:0:0:0:0) may be represented simply as
- "::".
-
- 3. A third form that is sometimes more convenient when dealing with a
- mixed environment of IPv4 and IPv6 nodes is x:x:x:x:x:x:d.d.d.d,
- where the "x"s are the hexadecimal values of the six high-order 16-
- bit pieces of the address, and the "d"s are the decimal values of
- the four low-order 8-bit pieces of the address (standard IPv4
- representation).
-
- The _i_n_e_t__a_t_o_n routine interprets the specified character string as an
- Internet address, placing the address into the structure provided. It
- returns 1 if the string was successfully interpreted, or 0 if the string
- is invalid. The _i_n_e_t__a_d_d_r and _i_n_e_t__n_e_t_w_o_r_k functions return numbers
- suitable for use as Internet addresses and Internet network numbers,
- respectively.
-
- The function _i_n_e_t__n_t_o_p converts an address from network format (usually a
- _s_t_r_u_c_t _i_n__a_d_d_r or some other binary form, in network byte order) to
- presentation format (suitable for external display purposes). It returns
- NULL if a system error occurs (in which case, _e_r_r_n_o will have been set),
- or it returns a pointer to the destination string. The _a_f argument
- specifies the family of the address. This can be AF_INET or AF_INET6.
- The _s_r_c argument points to a buffer holding an IPv4 address if the _a_f
- argument is AF_INET, or an IPv6 address if the _a_f argument is AF_INET6.
- The _d_s_t argument points to a buffer where the function will store the
- resulting text string; it must not be NULL. The _s_i_z_e argument specifies
- the size of this buffer, which must be large enough to hold the text
- string(INET_ADDRSTRLEN characters for IPv4, INET6_ADDRSTRLEN characters
- for IPv6).
-
- To determine if an ASCII string is a valid representation of an IPv4
- address, the function _i_n_e_t__i_s_a_d_d_r may be used. It takes a pointer to the
- string, cp, and returns a 1 if the address is valid, 0 otherwise.
- Additionally, if the addr parameter is non-NULL, the converted address
- will be stored at the address pointed to by addr.
-
-
-
- PPPPaaaaggggeeee 2222
-
-
-
-
-
-
- IIIINNNNEEEETTTT((((3333NNNN)))) IIIINNNNEEEETTTT((((3333NNNN))))
-
-
-
- The routine _i_n_e_t__n_t_o_a takes an Internet address and returns an ASCII
- string representing the address in "." notation. The routine
- _i_n_e_t__m_a_k_e_a_d_d_r takes an Internet network number and a local network
- address and constructs an Internet address from it. The routines
- _i_n_e_t__n_e_t_o_f and _i_n_e_t__l_n_a_o_f break apart Internet host addresses, returning
- the network number and local network address part, respectively.
-
- All Internet addresses are returned in network order (bytes ordered from
- left to right). All network numbers and local address parts are returned
- as machine format integer values.
-
- IIIINNNNTTTTEEEERRRRNNNNEEEETTTT AAAADDDDDDDDRRRREEEESSSSSSSSEEEESSSS
- Values specified using the "." notation take one of the following forms:
- a.b.c.d
- a.b.c
- a.b
- a
- When four parts are specified, each is interpreted as a byte of data and
- assigned, from left to right, to the four bytes of an Internet address.
-
- When a three part address is specified, the last part is interpreted as a
- 16-bit quantity and placed in the right most two bytes of the network
- address. This makes the three part address format convenient for
- specifying Class B network addresses as "128.net.host".
-
- When a two part address is supplied, the last part is interpreted as a
- 24-bit quantity and placed in the right most three bytes of the network
- address. This makes the two part address format convenient for
- specifying Class A network addresses as "net.host".
-
- When only one part is given, the value is stored directly in the network
- address without any byte rearrangement.
-
- All numbers supplied as "parts" in a "." notation may be decimal, octal,
- or hexadecimal, as specified in the C language (i.e., a leading 0x or 0X
- implies hexadecimal; otherwise, a leading 0 implies octal; otherwise, the
- number is interpreted as decimal).
-
- DDDDIIIIAAAAGGGGNNNNOOOOSSSSTTTTIIIICCCCSSSS
- The constant IIIINNNNAAAADDDDDDDDRRRR____NNNNOOOONNNNEEEE is returned by _i_n_e_t__a_d_d_r and _i_n_e_t__n_e_t_w_o_r_k for
- malformed requests.
-
- SSSSEEEEEEEE AAAALLLLSSSSOOOO
- gethostbyname(3N), getnetent(3N), hosts(4), networks(4)
-
- SSSSTTTTAAAANNNNDDDDAAAARRRRDDDDSSSS
- The iiiinnnneeeetttt____nnnnttttoooopppp and iiiinnnneeeetttt____ppppttttoooonnnn functions conform to XNS 5.2 standards.
-
- BBBBUUUUGGGGSSSS
- The value IIIINNNNAAAADDDDDDDDRRRR____NNNNOOOONNNNEEEE (0xffffffff) is a valid broadcast address, but
- _i_n_e_t__a_d_d_r cannot return that value without indicating failure. The newer
- _i_n_e_t__a_t_o_n function does not share this problem.
-
-
-
- PPPPaaaaggggeeee 3333
-
-
-
-
-
-
- IIIINNNNEEEETTTT((((3333NNNN)))) IIIINNNNEEEETTTT((((3333NNNN))))
-
-
-
- The string returned by _i_n_e_t__n_t_o_a resides in a static memory area. Thus
-
- printf("%s %s0, inet_ntoa(addr1), inet_ntoa(addr2));
-
- will print the same address twice.
-
- Inet_addr should return a struct in_addr.
-
- The problem of host byte ordering versus network byte ordering is
- confusing.
-
- A simple way to specify Class C network addresses in a manner similar to
- that for Class B and Class A is needed.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- PPPPaaaaggggeeee 4444
-
-
-
-